diff options
| author | Factiven <[email protected]> | 2023-05-17 14:25:48 +0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-05-17 14:25:48 +0700 |
| commit | 9ca4f38db1ac191fe0ce9d455940e09170307d47 (patch) | |
| tree | 38075d519df814fe96c5a83f557f23b71e28e4b3 /pages/anime/[...id].js | |
| parent | Update v3.5.7 (#12) (diff) | |
| download | moopa-9ca4f38db1ac191fe0ce9d455940e09170307d47.tar.xz moopa-9ca4f38db1ac191fe0ce9d455940e09170307d47.zip | |
update v3.5.8 (#13)
* Merge request (#11)
* Update v3.5.5
> Now Skip button will hide if player is not in focused state.
> Added some options to player.
> Manga images should be displayed now.
* Update videoPlayer.js
* Revamp hero section #1
* UI Improvement
> Updating main page
> Updated Genres selection using params method
> Added search bar v1.0 on main page ( [ctrl + space] to access search bar )
* update meta
* Update [...id].js
* Update [...id].js
> Back to ssr I guess
* update episode selector
* Update [...info].js
* Update UI
> Added On-Going section for AniList user
* Update content.js
* added dynamic og
* Update og.jsx
* Update og
* Update og.jsx
* update og and id fallback
> Added fallback for anime info if it's not found
* Update v3.5.7
* Update v3.5.8
> Added fallback for empty episodes
Diffstat (limited to 'pages/anime/[...id].js')
| -rw-r--r-- | pages/anime/[...id].js | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/pages/anime/[...id].js b/pages/anime/[...id].js index dc385f9..a2c84a4 100644 --- a/pages/anime/[...id].js +++ b/pages/anime/[...id].js @@ -20,6 +20,7 @@ import Modal from "../../components/modal"; import { signIn, useSession } from "next-auth/react"; import AniList from "../../components/media/aniList"; import ListEditor from "../../components/listEditor"; +import { closestMatch } from "closest-match"; const query = ` query ($username: String, $status: MediaListStatus) { @@ -143,7 +144,6 @@ const infoQuery = `query ($id: Int) { export default function Info({ info, color }) { const { data: session } = useSession(); const [data, setData] = useState(null); - // const [infos, setInfo] = useState(null); const [episode, setEpisode] = useState(null); const [loading, setLoading] = useState(false); const [progress, setProgress] = useState(0); @@ -151,8 +151,6 @@ export default function Info({ info, color }) { const [stall, setStall] = useState(false); const [domainUrl, setDomainUrl] = useState(""); - // console.log(info); - const [showAll, setShowAll] = useState(false); const [open, setOpen] = useState(false); @@ -240,10 +238,28 @@ export default function Info({ info, color }) { if (!data || data?.episodes?.length === 0) { const res = await fetch( - `https://api.consumet.org/meta/anilist/info/${id[0]}?provider=9anime` + `https://api.moopa.my.id/anime/gogoanime/${info.title.romaji}` ); const datas = await res.json(); - if (res.status === 500) { + + if (datas) { + const release = datas.results.map((i) => i.releaseDate); + const match = closestMatch(info.startDate.year, release); + const filter = datas.results.find((i) => i.releaseDate === match); + + // const found = filter.find((i) => i.title === info.title.romaji); + + // setLog(found); + + if (filter) { + const res = await fetch( + `https://api.moopa.my.id/anime/gogoanime/info/${filter.id}` + ); + const dataA = await res.json(); + setEpisode(dataA.episodes); + // setLog(dataA); + } + } else if (res.status === 500) { setEpisode(null); setEpiStatus("error"); setError(datas.message); @@ -254,7 +270,6 @@ export default function Info({ info, color }) { // backgroundColor: `${data?.color || "#ffff"}`, // color: textColor, // }); - setStall(true); } else { setEpisode(data.episodes); } @@ -323,7 +338,7 @@ export default function Info({ info, color }) { } } fetchData(); - }, [id, session?.user?.name]); + }, [id, session?.user?.name, info]); function handleOpen() { setOpen(true); @@ -718,7 +733,7 @@ export default function Info({ info, color }) { data && ( <div className="flex h-[640px] flex-col gap-5 scrollbar-thin scrollbar-thumb-[#1b1c21] scrollbar-thumb-rounded-full overflow-y-scroll hover:scrollbar-thumb-[#2e2f37]"> {epiStatus === "ok" ? ( - episode?.length !== 0 ? ( + episode?.length !== 0 && episode ? ( episode?.map((epi, index) => { return ( <div @@ -726,7 +741,7 @@ export default function Info({ info, color }) { className="flex flex-col gap-3 px-2" > <Link - href={`/anime/watch/${epi.id}/${data.id}/${ + href={`/anime/watch/${epi.id}/${info.id}/${ stall ? `9anime` : "" }`} className={`text-start text-sm lg:text-lg ${ |